package com.example.enums;

/**
 * 指令下达模块枚举
 * @author Slience
 * @date 2025/7/24 11:10
 **/
public enum OrderModuleEnum {
    /** ROV模块 */
    ROV("ROV"),

    /** 作业舱模块 */
    WORK_CHAMBER("作业舱"),

    /** 保障监控模块 */
    SUPPORT_MONITORING("保障监控"),

    /** 导航模块 */
    NAVIGATION("导航"),

    /** 打捞本体模块 */
    SALVAGE_BODY("打捞本体"),

    /** 机械臂模块 */
    MANIPULATOR("机械臂"),

    /** 权限切换模块 */
    PERMISSION_SWITCH("权限切换"),

    /** 模块化 */
    MODULARIZATION("模块化"),

    /** 铺缆模块 */
    CABLE_LAYING("铺缆");

    private final String value;

    OrderModuleEnum(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }

    /**
     * 根据值获取枚举
     */
    public static OrderModuleEnum fromValue(String value) {
        for (OrderModuleEnum module : OrderModuleEnum.values()) {
            if (module.value.equals(value)) {
                return module;
            }
        }
        throw new IllegalArgumentException("未知的模块值: " + value);
    }

    /**
     * 判断值是否存在
     */
    public static boolean containsValue(String value) {
        for (OrderModuleEnum module : OrderModuleEnum.values()) {
            if (module.value.equals(value)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 获取所有模块值
     */
    public static String[] getAllValues() {
        OrderModuleEnum[] modules = OrderModuleEnum.values();
        String[] values = new String[modules.length];
        for (int i = 0; i < modules.length; i++) {
            values[i] = modules[i].value;
        }
        return values;
    }

    @Override
    public String toString() {
        return this.value;
    }
}
